<?php
/**
 * tis-tis 后台公用工具方法文件
 *
 * @copyright (c)2010 昆明力行软件  保留所有权利。
 * @link http://www.tis-tis.com
 * @Author: XiangJie
 * @version: 1.0.0
 */
function getPageTitle($title) {
	$title = $title.'-TIS后台管理(昆明力行软件)';
	return $title;
}

/**
 * 图片上传的处理函数
 *
 * @access      public
 * @param       array       upload       包含上传的图片文件信息的数组
 * @param       array       dir          文件要上传在$this->data_dir下的目录名。如果为空图片放在则在$this->images_dir下以当月命名的目录下
 * @param       array       img_name     上传图片名称，为空则随机生成
 * @return      mix         如果成功则返回文件名，否则返回false
 */
function upload_image($upload, $url='./', $dir = '', $img_name = '')
{
	/* 没有指定目录默认为根目录images */
	if (empty($dir))
	{
		/* 创建当月目录 */
		$dir = date('Ym');
		$dir = TIS_ROOT . '/data/images' . '/' . $dir . '/';
	}
	else
	{
		/* 创建目录 */
		$dir = TIS_ROOT . '/data/images' . '/' . $dir . '/';
		if ($img_name)
		{
			$img_name = $dir . $img_name; // 将图片定位到正确地址
		}
	}

	/* 如果目标目录不存在，则创建它 */
	if (!file_exists($dir))
	{
		if (!mkdir($dir))
		{
			/* 创建目录失败 */
			redirectURL($url, '对不起,当前您的权限不够,请将文件修改成可写!');
		}
	}

	if (empty($img_name))
	{
		$img_name = unique_name($dir);
		$img_name = $dir . $img_name . get_filetype($upload['name']);
	}

	if (!check_img_type($upload['type']))
	{
		redirectURL($url, '对不起,不支持当前上传的文件格式!');
	}

	/* 允许上传的文件类型 */
	if (!check_file_type($img_name))
	{
		redirectURL($url, '对不起,不支持当前上传的文件格式!');
	}

	if (move_upload_file($upload['tmp_name'], $img_name))
	{
		return str_replace(ROOT_PATH, '', $img_name);
	}
	else
	{
		redirectURL($url, '对不起,上传失败!');
	}
}

/**
 *  生成指定目录不重名的文件名
 *
 * @access  public
 * @param   string      $dir        要检查是否有同名文件的目录
 *
 * @return  string      文件名
 */
function unique_name($dir)
{
	$filename = '';
	while (empty($filename))
	{
		$filename = random_filename();
		if (file_exists($dir . $filename . '.jpg') || file_exists($dir . $filename . '.gif') || file_exists($dir . $filename . '.png'))
		{
			$filename = '';
		}
	}

	return $filename;
}

/**
 * 生成随机的数字串
 *
 * @author: XiangJie
 * @return string
 */
function random_filename()
{
	$str = '';
	for($i = 0; $i < 9; $i++)
	{
		$str .= mt_rand(0, 9);
	}

	return (time() - date('Z')) . $str;
}

/**
 * 检查图片类型
 * @param   string  $img_type   图片类型
 * @return  bool
 */
function check_img_type($img_type)
{
	return $img_type == 'image/pjpeg' ||
	$img_type == 'image/x-png' ||
	$img_type == 'image/png'   ||
	$img_type == 'image/gif'   ||
	$img_type == 'image/jpeg';
}

function check_file_type($name, $list=array('GIF','JPG', 'JPEG', 'PNG', 'BMP', 'SWF')) {
	$temp = strtoupper(substr($name, strrpos($name, '.') + 1));
	$flat = false;

	foreach ($list as $value) {
		if ($temp == $value) {
			$flat = true;
			break;
		}
	}

	return $flat;
}

/**
 *  返回文件后缀名，如‘.php’
 *
 * @param   $path 文件路径
 *
 * @return  string      文件后缀名
 */
function get_filetype($path)
{
	$pos = strrpos($path, '.');
	if ($pos !== false)
	{
		return substr($path, $pos);
	}
	else
	{
		return '';
	}
}

/**
 * 将上传文件转移到指定位置,并且将其权限修改为0755
 *
 * @param string $file_name     待转移的文件
 * @param string $target_name   转移的目标文件
 * @return bool
 *
 * @author XiangJie
 */
function move_upload_file($file_name, $target_name = '')
{
	if (function_exists("move_uploaded_file"))
	{
		if (move_uploaded_file($file_name, $target_name))
		{
			@chmod($target_name,0755);
			return true;
		}
		else if (copy($file_name, $target_name))
		{
			@chmod($target_name,0755);
			return true;
		}
	}
	elseif (copy($file_name, $target_name))
	{
		@chmod($target_name,0755);
		return true;
	}
	return false;
}

/**
 * 判断文件是否有子文件
 *
 * @param string $path 文件名
 * @return bool 返回有不有子文件
 *
 * @author XiangJie
 */
function is_have_children($path) {
	if(!is_dir($path)) {
		return false;
	}

	$template_dir        = @opendir($path);

	while ($file = readdir($template_dir))

	{

		if ($file != '.' && $file != '..' && $file != '.svn' && $file != 'index.htm')

		{

			return true;

		}

	}

	return false;
}
/**
 * 删除指定的文件。
 *
 * @param string $path 文件的路径
 * @return bool 返回是否已经删除文件
 *
 * @author XiangJie
 */
function remove_file($path) {
	if (!file_exists($path)) {
		return false;
	} else {
		return @unlink($path);
	}
}

/**
 * 生成ajax所需的json对象。
 *
 * @param array $phparr 所需生产的php数组
 * @return Returns the JSON representation of a value
 *
 * @author XiangJie
 */
function my_json_encode($phparr)
{
	if(function_exists("json_encode"))
	{
		$val = json_encode($phparr);
		exit($val);
	}

	exit($val);
}

function add_advertisment($url) {
	global $DB;
	$img_src = $_REQUEST['img_info_src'];
	$img_url = $_REQUEST['img_info_url'];
	$is_open_new = $_REQUEST['is_open_new'];
	$img_des = $_REQUEST['img_info_des'];

	if (!$img_src || trim($img_src) == "http://") {
		$img_src = upload_file_opt($url);
		/**
		 * 截取需要的地址
		 */
		$img_src = strstr($img_src, "data");
	}

	if (!$img_src) {
		redirectURL($url, '请上传图片或者填写图片的源地址！');
	}

	/**
	 * 将数据保存到数据库中。
	 */
	$sql = "INSERT INTO ".$DB->table('advertisement')." (`img_url` ,`url` ,`description` ,`opennew`) VALUES (
			'$img_src', '$img_url', '$img_des', '$is_open_new');";
	$ret = $DB->query($sql);

	if ($ret)
		redirectURL($url, '广告位添加成功，继续添加图片！');

}

/**
 *  处理当前的插入图片的请求。
 *
 * @param $url 跳转的链接
 */
function upload_image_operater($url) {
	upload_file_opt($url);
	redirectURL($url, '添加成功，继续添加图片！');
}

function upload_file_opt($url) {
	$php_maxsize = ini_get('upload_max_filesize');
	/*获取客户端限制的大小*/
	$htm_maxsize = $_REQUEST['MAX_FILE_SIZE'];

	if (!isset($_FILES['img_info'])) {
		redirectURL($url, '请上传文件！');
	}

	if (isset($_FILES['img_info']['error']))  {
		if ($_FILES['img_info']['error'] == 0) {
			if (!check_img_type($_FILES['img_info']['type'])) {
				redirectURL($url, '当前文件类型不匹配！');
			}
		}
		elseif ($_FILES['img_info']['error'] == 1) {
			redirectURL($url, "当前文件太大，超过最大默认值（$php_maxsize）！");
		}
		elseif ($_FILES['img_info']['error'] == 2) {
			redirectURL($url, "当前文件太大，超过客户端最大默认值（$htm_maxsize）！");
		}
	} else {
		if ($_FILES['img_info']['tmp_name'] != 'none') {
			if (!check_img_type($_FILES['img_info']['type'])) {
				redirectURL($url, '当前文件类型不匹配！');
			}
		}
	}
	/*
	 * 上传图片
	 * */
	return upload_image($_FILES['img_info'], $url);
}
